class Solution 
{
public:
    int lengthOfLongestSubstring(string s) 
    {
        // 1、初始化
        int n = s.size();
        vector<int> count(256);
        int left = 0, right = 0, ret = 0;
        // 2、滑动窗口
        int length = 0; //用来记录窗口长度
        while(right < n)
        {
            if(!count[s[right]]) //进窗口
            {
                ++count[s[right]];
                ++length;
                ++right;
                ret = max(ret, length); //更新结果
            }
            else //出窗口
            {
                --count[s[left]];
                --length;
                ++left;
            }
        }
        // 3、返回值
        return ret;
    }
};
